package com.jjh.users.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.jjh.common.util.PageInfoUtil;
import com.jjh.users.pojo.AMenu;
import com.jjh.users.pojo.ARoleMenu;

/**
 * 权限Service
 * 包含菜单表,菜单菜单关系表 
 * @author jjh
 *
 */
public interface IAuthDbService
{
	/*-------菜单表操作开始--------*/
	
	/**
	 * 保存一条菜单
	 * @param menu	菜单
	 * @return	返回json
fastjson处理的时候超级简单;
凡是看到{}就是jsonObject;===Map使用
凡是看到[]就是jsonarray;===List使用
凡是看到:就是键和值;:左边是键,右边是值
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject saveOneMenuService(AMenu menu);
	
	/**
	 * 更新一条菜单
	 * @param menu
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject updateOneMenuService(AMenu menu);
	
	/**
	 * 删除一条菜单
	 * @param menu
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject deleteOneMenuService(Map<String,Object> condMap);
	
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	AMenu findOneMenuService(Map<String,Object> condMap);
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	List<AMenu> findCondListMenuService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	
	/**
	 * 查询菜单
	 * @param id  如果传了显示的是 这个id所对应的菜单 如果不传id说明查的是整棵树
	 * @param operType  向下找还是向上找(向上找必须传值)
	 * @return
	 */
	List<AMenu> findCondListTreeMenuService(int id , String operType);
	/*-------菜单表操作结束--------*/
	
	
	/*-------角色菜单表操作开始--------*/
	
	/**
	 * 保存一条角色菜单
	 * @param roleMenu	角色菜单
	 * @return	返回json
fastjson处理的时候超级简单;
凡是看到{}就是jsonObject;===Map使用
凡是看到[]就是jsonarray;===List使用
凡是看到:就是键和值;:左边是键,右边是值
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject saveOneRoleMenuService(ARoleMenu roleMenu);
	
	/**
	 * 更新一条角色菜单
	 * @param roleMenu
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject updateOneRoleMenuService(ARoleMenu roleMenu);
	
	/**
	 * 删除一条角色菜单
	 * @param roleMenu
	 * @return
{
    // 响应码
	"code":"",
	//响应信息
	"info":"",
	// 数据
	"data":
	{
		"id":"",
		// 影响条数
		"effect":"1"
	}
}
	 */
	JSONObject deleteOneRoleMenuService(Map<String,Object> condMap);
	
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	ARoleMenu findOneRoleMenuService(Map<String,Object> condMap);
	/**
	 * 查询一条记录
	 * @param condMap
	 * @return
	 */
	List<ARoleMenu> findCondListRoleMenuService(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	/*-------角色菜单表操作结束--------*/
}
